home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr37 / moni13.zip / MONI.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1995-03-15  |  24KB  |  1,060 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Integer  INTEGER001
  24.     Integer  INTEGER002
  25.     Integer  INTEGER003
  26.     Integer  INTEGER004
  27.     Integer  INTEGER005
  28.     Integer  INTEGER006
  29.     Integer  INTEGER007
  30.     Integer  INTEGER008
  31.     Integer  INTEGER009
  32.     Integer  INTEGER010
  33.     Integer  INTEGER011
  34.     Integer  INTEGER012
  35.     Integer  INTEGER013
  36.     Integer  INTEGER014
  37.     String   STRING001
  38.     String   STRING002
  39.     String   STRING003
  40.     String   STRING004
  41.     String   STRING005
  42.     String   STRING006
  43.     String   STRING007
  44.     String   STRING008
  45.     String   STRING009
  46.     String   STRING010
  47.     String   TSTRING011(15)
  48.     String   TSTRING012(15)
  49.     String   TSTRING013(1)
  50.     String   STRING014
  51.     String   STRING015
  52.     String   STRING016
  53.     String   STRING017
  54.     Word     WORD001
  55.     Word     WORD002
  56.     Int      INT001
  57.     Int      INT002
  58.     Int      INT003
  59.     Int      INT004
  60.     BigStr   BIGSTR001
  61.     BigStr   BIGSTR002
  62.     BigStr   BIGSTR003
  63.     BigStr   BIGSTR004
  64.     BigStr   BIGSTR005
  65.     BigStr   BIGSTR006
  66.     BigStr   BIGSTR007
  67.     BigStr   BIGSTR008
  68.  
  69. ;------------------------------------------------------------------------------
  70.  
  71.     GetUser
  72.     If (U_Sec < SysopSec()) Then
  73.         Log "UltraMoni: Insufficient Security To Use!", 0
  74.         End
  75.     Else
  76.         Log "UltraMoni Entered at " + Left(Time(), 5), 0
  77.     Endif
  78.     If (AnsiOn()) Goto LABEL001
  79.     PrintLn 
  80.     PrintLn "Sorry, this program requires ANSI capability."
  81.     PrintLn 
  82.     Log "UltraMoni: Caller Does Not Have ANSI capability.", 0
  83.     End
  84.     :LABEL001
  85.     BOOLEAN001 = 0
  86.     GetToken INTEGER011
  87.     If (INTEGER011 == 0) INTEGER011 = 60
  88.     GetToken INTEGER009
  89.     If (INTEGER009 == 0) INTEGER009 = 3
  90.     GetToken STRING014
  91.     GetToken STRING003
  92.     BOOLEAN003 = 1
  93.     If (STRING003 <> "CMS") BOOLEAN003 = 0
  94.     If (BOOLEAN003) Then
  95.         STRING008 = ""
  96.         STRING008 = ReadLine(PPEPath() + "MONI.CMS", 1)
  97.         FClose -1
  98.         If (STRING008 == "") Then
  99.             PrintLn 
  100.             PrintLn "MONI.CMS File Not Found!"
  101.             PrintLn 
  102.             End
  103.         Endif
  104.         If (Exist(STRING008 + ".DAT")) Goto LABEL002
  105.         PrintLn 
  106.         PrintLn "CMS Database (", STRING008, ") Not Found!"
  107.         PrintLn 
  108.         End
  109.         :LABEL002
  110.         STRING009 = STRING008
  111.         :LABEL003
  112.         If (Right(STRING009, 1) <> "\") Then
  113.             STRING009 = Left(STRING009, Len(STRING009) - 1)
  114.             Goto LABEL003
  115.             Goto LABEL004
  116.         Endif
  117.         STRING009 = STRING009 + "NOTES\"
  118.         :LABEL004
  119.         STRING017 = STRING008
  120.         STRING008 = STRING008 + ".DAT"
  121.     Endif
  122.     BOOLEAN002 = 0
  123.     BOOLEAN001 = 0
  124.     INT004 = MaxNode()
  125.     INT003 = 1
  126.     STRING004 = "@X1F"
  127.     STRING005 = "@X1F"
  128.     INTEGER001 = 3
  129.     INTEGER002 = 3
  130.     STRING006 = "@X1E "
  131.     TSTRING013(0) = "No "
  132.     TSTRING013(1) = "Yes"
  133.     STRING007 = ReadLine(PCBDat(), 45)
  134.     STRING015 = ReadLine(PCBDat(), 41)
  135.     StartDisp 1
  136.     KbdChkOff
  137.     INT001 = 0
  138.     :LABEL005
  139.     Inc INT001
  140.     STRING003 = ""
  141.     STRING003 = ReadLine(STRING007, INT001)
  142.     If (STRING003 == "") Then
  143.         FClose -1
  144.     Else
  145.         STRING003 = Left(STRING003, Len(STRING003) - 6)
  146.         TSTRING011(INT001) = Left(STRING003, 1)
  147.         STRING003 = Right(STRING003, Len(STRING003) - 4)
  148.         TSTRING012(INT001) = Right(STRING003, Len(STRING003) - InStr(STRING003, ","))
  149.         Goto LABEL005
  150.     Endif
  151.     :LABEL006
  152.     Color 7
  153.     Cls
  154.     PrintLn "@X1E╔═══════════════[@X1F UltraMoni PCB Node Monitoring Utility v1.3 @X1E]════════════════╗@X07"
  155.     PrintLn "@X1E║@X1B #     Status                User                             Reads:         @X1E║@X07"
  156.     PrintLn "@X1E║                                                                             ║@X07"
  157.     PrintLn "@X1E║                                                                             ║@X07"
  158.     PrintLn "@X1E║                                                                             ║@X07"
  159.     PrintLn "@X1E║                                                                             ║@X07"
  160.     PrintLn "@X1E║                                                                             ║@X07"
  161.     PrintLn "@X1E║                                                                             ║@X07"
  162.     PrintLn "@X1E║                                                                             ║@X07"
  163.     PrintLn "@X1E║                                                                             ║@X07"
  164.     PrintLn "@X1E║                                                                             ║@X07"
  165.     PrintLn "@X1E║                                                                             ║@X07"
  166.     PrintLn "@X1E║                                                                             ║@X07"
  167.     PrintLn "@X1E║                                                                             ║@X07"
  168.     PrintLn "@X1E║                                                                             ║@X07"
  169.     PrintLn "@X1E║                                                                             ║@X07"
  170.     PrintLn "@X1E║                                                                             ║@X07"
  171.     PrintLn "@X1E║                                                                             ║@X07"
  172.     PrintLn "@X1E║                                                                             ║@X07"
  173.     PrintLn "@X1E║                                                                             ║@X07"
  174.     PrintLn "@X1E║                                                                             ║@X07"
  175.     PrintLn "@X1E║                                                                             ║@X07"
  176.     Print "@X1E╚══════════════════════════════[@X1F ESC To Quit @X1E]════════════════════════════════╝@X07"
  177.     Gosub LABEL009
  178.     Gosub LABEL012
  179.     INTEGER010 = Time()
  180.     :LABEL007
  181.     STRING001 = Inkey()
  182.     If (STRING001 == Chr(27)) Then
  183.         DefColor
  184.         KbdChkOn
  185.         Cls
  186.         If (!BOOLEAN001 && (Random(2) == 0)) Log "UltraMoni: Please consider registering this PPE!", 0
  187.         Log "UltraMoni Exited at " + Left(Time(), 5), 0
  188.         End
  189.     Endif
  190.     If (STRING001 == "") Then
  191.         Inc WORD002
  192.         If (!BOOLEAN001 && (WORD002 > 45000)) Then
  193.             Gosub LABEL019
  194.             WORD002 = 0
  195.             Goto LABEL006
  196.         Endif
  197.         If ((INTEGER008 + INTEGER009 < Time()) || (Time() < INTEGER008)) Then
  198.             Gosub LABEL009
  199.             Goto LABEL007
  200.         Endif
  201.         If (INTEGER011 <> 999) Then
  202.             If ((INTEGER010 + INTEGER011 < Time()) || (Time() < INTEGER010)) Then
  203.                 :LABEL008
  204.                 INT003 = INT003 + 20
  205.                 STRING003 = ScrText(3, 22, 3, 0)
  206.                 STRING003 = RTrim(STRING003, " ")
  207.                 If (STRING003 == INT004) INT003 = 1
  208.                 INTEGER010 = Time()
  209.                 Gosub LABEL009
  210.                 If ((INTEGER003 == 0) && (STRING014 <> "NOSKIP")) Goto LABEL008
  211.                 Goto LABEL007
  212.             Endif
  213.         Endif
  214.         Goto LABEL007
  215.     Endif
  216.     If (STRING001 == 2) Then
  217.         Inc INT003
  218.         INTEGER010 = Time()
  219.         Gosub LABEL009
  220.         Goto LABEL007
  221.     Endif
  222.     If (STRING001 == 8) Then
  223.         Dec INT003
  224.         INTEGER010 = Time()
  225.         Gosub LABEL009
  226.         Goto LABEL007
  227.     Endif
  228.     If (STRING001 == 3) Then
  229.         INT003 = INT003 + 20
  230.         INTEGER010 = Time()
  231.         Gosub LABEL009
  232.         Goto LABEL007
  233.     Endif
  234.     If (STRING001 == 9) Then
  235.         INT003 = INT003 - 20
  236.         INTEGER010 = Time()
  237.         Gosub LABEL009
  238.         Goto LABEL007
  239.     Endif
  240.     If (STRING001 == 1) Then
  241.         INTEGER002 = INTEGER001
  242.         Inc INTEGER001
  243.         Gosub LABEL012
  244.         Goto LABEL007
  245.     Endif
  246.     If (STRING001 == 7) Then
  247.         INTEGER002 = INTEGER001
  248.         Dec INTEGER001
  249.         Gosub LABEL012
  250.         Goto LABEL007
  251.     Endif
  252.     If (STRING001 == Chr(13)) Then
  253.         STRING003 = ScrText(3, INTEGER001, 3, 0)
  254.         STRING003 = RTrim(STRING003, " ")
  255.         Gosub LABEL013
  256.         WORD002 = WORD002 + Random(50)
  257.         If (!BOOLEAN001 && (WORD002 > 40000)) Then
  258.             Gosub LABEL019
  259.             WORD002 = 0
  260.             Goto LABEL006
  261.         Endif
  262.         Goto LABEL006
  263.     Endif
  264.     If (STRING001 == 4) Then
  265.         BOOLEAN002 = 0
  266.         INTEGER010 = Time()
  267.         Gosub LABEL009
  268.         Goto LABEL007
  269.     Endif
  270.     If (STRING001 == 6) Then
  271.         BOOLEAN002 = 1
  272.         INTEGER010 = Time()
  273.         Gosub LABEL009
  274.         Goto LABEL007
  275.     Endif
  276.     If (STRING001 == " ") Then
  277.         STRING003 = ScrText(3, INTEGER001, 3, 0)
  278.         STRING003 = RTrim(STRING003, " ")
  279.         Gosub LABEL018
  280.         INTEGER010 = Time()
  281.         WORD002 = WORD002 + Random(49)
  282.         If (!BOOLEAN001 && (WORD002 > 40000)) Then
  283.             Gosub LABEL019
  284.             WORD002 = 0
  285.             Goto LABEL006
  286.         Endif
  287.         Goto LABEL006
  288.     Endif
  289.     INTEGER010 = Time()
  290.     Gosub LABEL009
  291.     Goto LABEL007
  292.     :LABEL009
  293.     If (INT003 < 1) INT003 = 1
  294.     If (INT003 + 19 > INT004) INT003 = INT004 - 19
  295.     If (INT004 < 25) INT003 = 1
  296.     INT002 = 3
  297.     INTEGER003 = 0
  298.     Color 27
  299.     If (BOOLEAN002) Then
  300.         AnsiPos 9, 2
  301.         Print " User "
  302.         AnsiPos 31, 2
  303.         Print "Status"
  304.     Else
  305.         AnsiPos 9, 2
  306.         Print "Status"
  307.         AnsiPos 31, 2
  308.         Print "User  "
  309.     Endif
  310.     INTEGER008 = Time()
  311.     For INT001 = INT003 To INT003 + 19
  312.         RdUNet INT001
  313.         AnsiPos 3, INT002
  314.         Color 30
  315.         STRING002 = UN_Stat()
  316.         INTEGER003 = INTEGER003 + Asc(STRING002)
  317.         If (STRING002 == 0) STRING003 = "(Inactive Node)"
  318.         If (((STRING002 == " ") || (STRING002 == "V")) || (STRING002 == "Y")) STRING003 = "No Caller This Node"
  319.         If (STRING002 == "A") STRING003 = "Available For Chat"
  320.         If (STRING002 == "B") STRING003 = "Out To DOS"
  321.         If (STRING002 == "C") STRING003 = "Chatting With Sysop"
  322.         If (STRING002 == "D") STRING003 = "Out Of Code In Door"
  323.         If (STRING002 == "E") STRING003 = "Entering A Message"
  324.         If (STRING002 == "F") STRING003 = "Viewing A File"
  325.         If (STRING002 == "G") STRING003 = "Chatting With Group"
  326.         If (STRING002 == "H") STRING003 = "Handling Mail"
  327.         If (STRING002 == "L") STRING003 = "Logoff Pending"
  328.         If (STRING002 == "M") STRING003 = "Recvd Brdcst Msg"
  329.         If (STRING002 == "N") STRING003 = "Running Event"
  330.         If (STRING002 == "O") STRING003 = "Logging Into System"
  331.         If (STRING002 == "P") STRING003 = "Paging The Sysop"
  332.         If (STRING002 == "R") STRING003 = "Recycle BBS"
  333.         If (STRING002 == "S") STRING003 = "Answering Script"
  334.         If (STRING002 == "T") STRING003 = "Transferring A File"
  335.         If (STRING002 == "U") STRING003 = "Unavailable For Chat"
  336.         If (STRING002 == "W") STRING003 = "Drop To Dos - Wait"
  337.         If (STRING002 == "X") STRING003 = "Drop To Dos - Now"
  338.         If (INT001 > INT004) STRING003 = "      ---"
  339.         If (BOOLEAN002) Then
  340.             If ((STRING002 < "A") || (STRING002 == "Z")) Then
  341.                 PrintLn Left(String(INT001), 5), Left(STRING003, 23), Left(UN_Oper(), 47)
  342.             Else
  343.                 Select Case (STRING002)
  344.                     Case "A", "U"
  345.                         PrintLn Left(String(INT001), 5), STRING002, " ", Left(UN_Name(), 20), " ", Left(UN_City(), 44)
  346.                     Case "H"
  347.                         PrintLn Left(String(INT001), 5), STRING002, " ", Left(STRING003, 20), " ", Left(UN_Name(), 44)
  348.                         If (STRING002 == "D") Then
  349.                             PrintLn Left(String(INT001), 5), STRING002, " ", Left(UN_Name(), 20), " ", Mid(UN_Oper(), InStr(UN_Oper(), "-") + 2, 44)
  350.                         Else
  351.                             PrintLn Left(String(INT001), 5), STRING002, " ", Left(UN_Name(), 20), " ", Left(UN_Oper(), 44)
  352.                         Endif
  353.                     Else
  354.                     Case "H"
  355.                         PrintLn Left(String(INT001), 5), Left(STRING003, 23), Left(UN_Name(), 47)
  356.                     Case ((STRING002 == " ") || (STRING002 == "N")) || (STRING002 == "D"), " ", "N", "D", " ", "Z", "V", "Y"
  357.                         PrintLn Left(String(INT001), 5), Left(STRING003, 23), Left(UN_Oper(), 47)
  358.                         Goto LABEL010
  359.                     Case Else
  360.                         PrintLn Left(String(INT001), 5), Left(STRING003, 23), Left(UN_Name() + " (" + UN_City() + ")", 47)
  361.                     Endif
  362.                 Endif
  363.         End Select
  364.         :LABEL010
  365.         Inc INT002
  366.     Next
  367.     Inc WORD001
  368.     :LABEL011
  369.     AnsiPos 71, 2
  370.     Print "@X1E", WORD001
  371.     Return
  372.     :LABEL012
  373.     If (INTEGER001 < 3) Then
  374.         INTEGER001 = 3
  375.         Return
  376.     Endif
  377.     If (INTEGER001 > 22) Then
  378.         INTEGER001 = 22
  379.         Return
  380.     Endif
  381.     AnsiPos 2, INTEGER002
  382.     Print STRING006
  383.     AnsiPos 2, INTEGER001
  384.     Print STRING004
  385.     AnsiPos 78, INTEGER002
  386.     Print STRING006
  387.     AnsiPos 78, INTEGER001
  388.     Print STRING005
  389.     INTEGER008 = Time()
  390.     INTEGER010 = Time()
  391.     Goto LABEL011
  392.     Return
  393.     :LABEL013
  394.     RdUNet STRING003
  395.     INTEGER007 = U_RecNum(UN_Name())
  396.     If (((INTEGER007 == -1) || (UN_Stat() < "A")) || (Left(UN_Name(), 1) < "@")) Then
  397.         If (!OnLocal()) Print Chr(7)
  398.         If (OnLocal()) Then
  399.             Sound 1000
  400.             Delay 1
  401.             Sound 0
  402.         Endif
  403.         Return
  404.     Endif
  405.     GetAltUser INTEGER007
  406.     STRING010 = STRING003
  407.     If (BOOLEAN003) Goto LABEL016
  408.     :LABEL014
  409.     Color 7
  410.     Cls
  411.     WORD002 = WORD002 + Random(25) + 25
  412.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  413.     PrintLn "@X10│ @X1B█▓▒░ @X1FUser Viewer - PCB @X1B░▒▓█                             @X1FUser Number:        @X19│@X0F"
  414.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X0F"
  415.     PrintLn "@X10┌──────────────────────────────────────┬──────────────────────────────────────@X19┐@X0F"
  416.     PrintLn "@X10│@X1B  Name         [                    ] @X10│@X1B   Reg. Exp. Date[                  ] @X19│@X0F"
  417.     PrintLn "@X10│@X1B  From         [                    ] @X10│@X1B   Tot # of U/Ls [                  ] @X19│@X0F"
  418.     PrintLn "@X10│@X1B  B/D Phone    [                    ] @X10│@X1B   Tot # of D/Ls [                  ] @X19│@X0F"
  419.     PrintLn "@X10│@X1B  H/V Phone    [                    ] @X10│@X1B   Tot bytes U/L [                  ] @X19│@X0F"
  420.     PrintLn "@X10│@X1B  Expert Mode  [                    ] @X10│@X1B   Tot bytes D/L [                  ] @X19│@X0F"
  421.     PrintLn "@X10│@X1B  Def. Protocol[                    ] @X10│@X1B   Last Date On  [                  ] @X19│@X0F"
  422.     PrintLn "@X10│@X1B  Page Length  [                    ] @X10│@X1B   Last Time On  [                  ] @X19│@X0F"
  423.     PrintLn "@X10│@X1B  Security Lvl [                    ] @X10│@X1B   Total Logons  [                  ] @X19│@X0F"
  424.     PrintLn "@X10│@X1B  Expired Sec  [                    ] @X10│@X1B   Password      [                  ] @X19│@X0F"
  425.     PrintLn "@X10│@X1B  Verify Info  [                    ] @X10│@X1B   Alias         [                  ] @X19│@X0F"
  426.     PrintLn "@X10│@X1B  Pwrd Changes [                    ] @X10│@X1B   Last DIR Scan [                  ] @X19│@X0F"
  427.     PrintLn "@X10├──────────────────────────────────────┴──────────────────────────────────────@X19┤@X0F"
  428.     PrintLn "@X10│ @X1B         Comment 1  [                              ]                        @X19│@X0F"
  429.     PrintLn "@X10│ @X1B         Comment 2  [                              ]                        @X19│@X0F"
  430.     PrintLn "@X10├─────────────────────────────────────────────────────────────────────────────@X19┤@X0F"
  431.     PrintLn "@X10│                                                                             @X19│@X0F"
  432.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X0F"
  433.     Color 31
  434.     AnsiPos 35, 2
  435.     Print "Node Number: @X1E", STRING003
  436.     AnsiPos 72, 2
  437.     Print INTEGER007
  438.     AnsiPos 18, 5
  439.     Print Left(U_Name(), 20)
  440.     AnsiPos 18, 6
  441.     Print Left(U_City, 20)
  442.     AnsiPos 18, 7
  443.     Print U_BDPhone
  444.     AnsiPos 18, 8
  445.     Print U_HVPhone
  446.     AnsiPos 18, 9
  447.     Print TSTRING013(U_Expert)
  448.     AnsiPos 18, 10
  449.     For INT001 = 1 To 15
  450.         If (U_Trans == TSTRING011(INT001)) Then
  451.             Print Left(TSTRING012(INT001), 20)
  452.             Break
  453.         Endif
  454.     Next
  455.     AnsiPos 18, 11
  456.     Print U_PageLen
  457.     AnsiPos 18, 12
  458.     If (U_Sec == 0) Then
  459.         Print " !! Locket Out !! "
  460.     Else
  461.         Print U_Sec
  462.     Endif
  463.     AnsiPos 18, 13
  464.     Print U_ExpSec
  465.     AnsiPos 18, 14
  466.     If (Psa(2)) Then
  467.         Print Left(U_Ver, 20)
  468.     Else
  469.         Print "N/A"
  470.     Endif
  471.     AnsiPos 18, 15
  472.     If (Psa(4)) Then
  473.         Print U_PwdTc()
  474.     Else
  475.         Print "N/A"
  476.     Endif
  477.     AnsiPos 59, 5
  478.     Print U_ExpDate
  479.     AnsiPos 59, 6
  480.     Print U_Ful()
  481.     AnsiPos 59, 7
  482.     Print U_Fdl()
  483.     AnsiPos 59, 8
  484.     Print U_Bul()
  485.     AnsiPos 59, 9
  486.     Print U_Bdl()
  487.     AnsiPos 59, 10
  488.     Print U_LDate()
  489.     AnsiPos 59, 11
  490.     Print U_LTime()
  491.     AnsiPos 59, 12
  492.     Print U_Logons()
  493.     AnsiPos 59, 13
  494.     Print U_Pwd
  495.     AnsiPos 59, 14
  496.     If (Psa(1)) Then
  497.         Print U_Alias
  498.     Else
  499.         Print "N/A"
  500.     Endif
  501.     AnsiPos 59, 15
  502.     Print U_LDir()
  503.     AnsiPos 24, 17
  504.     Print U_Cmnt1
  505.     AnsiPos 24, 18
  506.     Print U_Cmnt2
  507.     FReAltUser
  508.     AnsiPos 27, 20
  509.     KeyFlush
  510.     Print "@X1FHit <any> Key To Continue"
  511.     :LABEL015
  512.     STRING003 = Inkey()
  513.     If (STRING003 == "") Goto LABEL015
  514.     Return
  515.     :LABEL016
  516.     Color 23
  517.     Cls
  518.     WORD002 = WORD002 + Random(50) + 50
  519.     PrintLn "                           @X1F User Viewer - CMS @X17"
  520.     PrintLn "  User Number│                                       Password│"
  521.     PrintLn "  Name on BBS│                                       Times On│"
  522.     PrintLn "   First Name│                                       Security│"
  523.     PrintLn "  Middle Init│                                     Expiration│"
  524.     PrintLn "    Last Name│                                   Exp Security│"
  525.     PrintLn "      Company│                                               │"
  526.     PrintLn "    Address 1│                                Curr Membership│"
  527.     PrintLn "    Address 2│                                Curr Memb Start│"
  528.     PrintLn "         City│                              Membership Status│"
  529.     PrintLn "        State│                                Current Options│"
  530.     PrintLn "  Postal Code│                                               │"
  531.     PrintLn "  Voice Phone│                                Renewal Pending│"
  532.     PrintLn "    Fax Phone│                                  Renewal Start│"
  533.     PrintLn "   Birth Date│                                 Renewal Status│"
  534.     PrintLn "             │                                Renewal Options│"
  535.     PrintLn "  Acct Status│                                               │"
  536.     PrintLn " Acct Balance│                                   Auto Renewal│"
  537.     PrintLn " Member Since│                                   Auto Options│"
  538.     PrintLn "             │                                               │"
  539.     PrintLn "     Switches│                                  Attached Text│"
  540.     PrintLn 
  541.     FOpen 1, STRING017 + "." + Left(U_Name(), 1), 0, 0
  542.     INT001 = FileInf(STRING017 + "." + Left(U_Name(), 1), 4)
  543.     INT001 = INT001 / 29
  544.     BOOLEAN004 = 0
  545.     For INTEGER004 = 1 To INT001
  546.         FSeek 1, INTEGER004 * 29 - 29, 0
  547.         FRead 1, BIGSTR006, 29
  548.         If (Right(BIGSTR006, 25) == Left(U_Name(), 25)) Then
  549.             FSeek 1, INTEGER004 * 29 - 29, 0
  550.             FRead 1, INTEGER006, 4
  551.             BOOLEAN004 = 1
  552.             Break
  553.         Endif
  554.     Next
  555.     FClose 1
  556.     If (!BOOLEAN004) Goto LABEL014
  557.     INTEGER005 = INTEGER006 * 469 - 469
  558.     INTEGER014 = FileInf(STRING008, 4) / 469
  559.     FOpen 1, STRING008, 0, 0
  560.     FSeek 1, INTEGER005, 0
  561.     FRead 1, BIGSTR006, 469
  562.     Color 30
  563.     AnsiPos 16, 2
  564.     FSeek 1, INTEGER005, 0
  565.     FRead 1, INTEGER004, 4
  566.     Print INTEGER004
  567.     BIGSTR008 = String(INTEGER004)
  568.     AnsiPos 16, 3
  569.     Print Mid(BIGSTR006, 5, 25)
  570.     AnsiPos 16, 4
  571.     Print Mid(BIGSTR006, 32, 20)
  572.     AnsiPos 16, 5
  573.     Print Mid(BIGSTR006, 72, 1)
  574.     AnsiPos 16, 6
  575.     Print Mid(BIGSTR006, 52, 20)
  576.     AnsiPos 16, 7
  577.     Print Mid(BIGSTR006, 73, 30)
  578.     AnsiPos 16, 8
  579.     Print Mid(BIGSTR006, 103, 30)
  580.     AnsiPos 16, 9
  581.     Print Mid(BIGSTR006, 133, 30)
  582.     AnsiPos 16, 10
  583.     Print Mid(BIGSTR006, 163, 20)
  584.     AnsiPos 16, 11
  585.     Print Mid(BIGSTR006, 183, 20)
  586.     AnsiPos 16, 12
  587.     Print Mid(BIGSTR006, 203, 10)
  588.     AnsiPos 16, 13
  589.     If (Mid(BIGSTR006, 213, 5) == "     ") Then
  590.         Print "(000) ", Mid(BIGSTR006, 221, 3), "-", Mid(BIGSTR006, 224, 4)
  591.     Else
  592.         Print "(", Mid(BIGSTR006, 213, 3), ") ", Mid(BIGSTR006, 216, 3), "-", Mid(BIGSTR006, 219, 4)
  593.     Endif
  594.     AnsiPos 16, 14
  595.     If ((Mid(BIGSTR006, 228, 5) <> "     ") && (Mid(BIGSTR006, 228, 5) <> "00000")) Then
  596.         Print "(", Mid(BIGSTR006, 228, 3), ") ", Mid(BIGSTR006, 231, 3), "-", Mid(BIGSTR006, 234, 4)
  597.     Endif
  598.     AnsiPos 16, 15
  599.     FSeek 1, INTEGER005 + 451, 0
  600.     FRead 1, INTEGER004, 2
  601.     If ((INTEGER004 == 0) || (INTEGER004 == 7305)) Then
  602.         Print "Unknown"
  603.     Else
  604.         Print ToDate(INTEGER004 + 29219)
  605.     Endif
  606.     AnsiPos 16, 17
  607.     If (Mid(BIGSTR006, 30, 1) <> "X") Then
  608.         Print "Active"
  609.     Else
  610.         Print "Deleted"
  611.     Endif
  612.     AnsiPos 16, 18
  613.     FSeek 1, INTEGER005 + 383, 0
  614.     FRead 1, INTEGER004, 4
  615.     Print ToMoney(INTEGER004)
  616.     AnsiPos 16, 19
  617.     FSeek 1, INTEGER005 + 418, 0
  618.     FRead 1, INTEGER004, 2
  619.     If ((((INTEGER004 == 0) || (INTEGER004 == 7305)) || (INTEGER004 == 16777216)) || (INTEGER004 == 805306368)) Then
  620.         Print "00-00-00"
  621.     Else
  622.         Print ToDate(INTEGER004 + 29219)
  623.     Endif
  624.     AnsiPos 16, 21
  625.     BIGSTR007 = Mid(BIGSTR006, 448, 1)
  626.     For INTEGER004 = 7 To 0 Step -1
  627.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  628.             Print "@X1EO"
  629.             Continue
  630.         Endif
  631.         Print "@X16o"
  632.     Next
  633.     BIGSTR007 = Mid(BIGSTR006, 449, 1)
  634.     For INTEGER004 = 7 To 0 Step -1
  635.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  636.             Print "@X1EO"
  637.             Continue
  638.         Endif
  639.         Print "@X16o"
  640.     Next
  641.     Color 28
  642.     AnsiPos 64, 2
  643.     Print U_Pwd
  644.     AnsiPos 64, 3
  645.     Print U_Logons()
  646.     AnsiPos 64, 4
  647.     Print U_Sec
  648.     AnsiPos 64, 5
  649.     Print U_ExpDate
  650.     AnsiPos 64, 6
  651.     Print U_ExpSec
  652.     Color 30
  653.     AnsiPos 64, 8
  654.     If (Mid(BIGSTR006, 418, 1) == " ") Then
  655.         Print "None"
  656.     Else
  657.         Print "Type ", Mid(BIGSTR006, 418, 1)
  658.     Endif
  659.     AnsiPos 64, 9
  660.     FSeek 1, INTEGER005 + 438, 0
  661.     FRead 1, INTEGER004, 2
  662.     If ((((INTEGER004 == 0) || (INTEGER004 == 7305)) || (INTEGER004 == 16777216)) || (INTEGER004 == 805306368)) Then
  663.         Print "00-00-00"
  664.     Else
  665.         Print ToDate(INTEGER004 + 29219)
  666.     Endif
  667.     AnsiPos 64, 10
  668.     If (Mid(BIGSTR006, 421, 1) == 0) Print "n/a"
  669.     If (Mid(BIGSTR006, 421, 1) == 1) Print "Active"
  670.     If (Mid(BIGSTR006, 421, 1) == 2) Print "Ready for use"
  671.     If (Mid(BIGSTR006, 421, 1) == 3) Print "Waiting op Ok"
  672.     AnsiPos 64, 11
  673.     BIGSTR007 = Mid(BIGSTR006, 422, 1)
  674.     For INTEGER004 = 7 To 0 Step -1
  675.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  676.             Print "@X1EO"
  677.             Continue
  678.         Endif
  679.         Print "@X16o"
  680.     Next
  681.     BIGSTR007 = Mid(BIGSTR006, 423, 1)
  682.     For INTEGER004 = 7 To 0 Step -1
  683.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  684.             Print "@X1EO"
  685.             Continue
  686.         Endif
  687.         Print "@X16o"
  688.     Next
  689.     Color 30
  690.     AnsiPos 64, 13
  691.     If (Mid(BIGSTR006, 430, 1) == " ") Then
  692.         Print "None"
  693.     Else
  694.         Print "Type ", Mid(BIGSTR006, 430, 1)
  695.     Endif
  696.     AnsiPos 64, 14
  697.     FSeek 1, INTEGER005 + 453, 0
  698.     FRead 1, INTEGER004, 2
  699.     If ((((INTEGER004 == 0) || (INTEGER004 == 7305)) || (INTEGER004 == 16777216)) || (INTEGER004 == 805306368)) Then
  700.         Print "00-00-00"
  701.     Else
  702.         Print ToDate(INTEGER004 + 29219)
  703.     Endif
  704.     AnsiPos 64, 15
  705.     If (Mid(BIGSTR006, 456, 1) == 0) Print "n/a"
  706.     If (Mid(BIGSTR006, 456, 1) == 1) Print "Ready for use"
  707.     If (Mid(BIGSTR006, 456, 1) == 2) Print "Waiting op OK"
  708.     AnsiPos 64, 16
  709.     BIGSTR007 = Mid(BIGSTR006, 431, 1)
  710.     For INTEGER004 = 7 To 0 Step -1
  711.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  712.             Print "@X1EO"
  713.             Continue
  714.         Endif
  715.         Print "@X16o"
  716.     Next
  717.     BIGSTR007 = Mid(BIGSTR006, 432, 1)
  718.     For INTEGER004 = 7 To 0 Step -1
  719.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  720.             Print "@X1EO"
  721.             Continue
  722.         Endif
  723.         Print "@X16o"
  724.     Next
  725.     Color 30
  726.     AnsiPos 64, 18
  727.     If (Mid(BIGSTR006, 443, 1) == " ") Then
  728.         Print "Not selected"
  729.     Else
  730.         Print "Type ", Mid(BIGSTR006, 443, 1)
  731.     Endif
  732.     AnsiPos 64, 19
  733.     BIGSTR007 = Mid(BIGSTR006, 444, 1)
  734.     For INTEGER004 = 7 To 0 Step -1
  735.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  736.             Print "@X1EO"
  737.             Continue
  738.         Endif
  739.         Print "@X16o"
  740.     Next
  741.     BIGSTR007 = Mid(BIGSTR006, 445, 1)
  742.     For INTEGER004 = 7 To 0 Step -1
  743.         If (IsBitSet(BIGSTR007, INTEGER004)) Then
  744.             Print "@X1EO"
  745.             Continue
  746.         Endif
  747.         Print "@X16o"
  748.     Next
  749.     Color 30
  750.     AnsiPos 64, 21
  751.     If (!Exist(STRING009 + BIGSTR008 + ".NOT") && !Exist(STRING009 + BIGSTR008 + ".MSG")) Print "None"
  752.     If (!Exist(STRING009 + BIGSTR008 + ".NOT") && Exist(STRING009 + BIGSTR008 + ".MSG")) Print "Message"
  753.     If (Exist(STRING009 + BIGSTR008 + ".NOT") && !Exist(STRING009 + BIGSTR008 + ".MSG")) Print "Note"
  754.     If (Exist(STRING009 + BIGSTR008 + ".NOT") && Exist(STRING009 + BIGSTR008 + ".MSG")) Print "Note & Msg"
  755.     AnsiPos 1, 22
  756.     STRING003 = "Record " + String(INTEGER006) + " of " + String(INTEGER014)
  757.     Print Space((74 - Len(STRING003)) / 2), "@X17", STRING003
  758.     AnsiPos 13, 23
  759.     Print "@X1FHit Enter For PCB View or Any Other Key To Continue"
  760.     FClose 1
  761.     KeyFlush
  762.     :LABEL017
  763.     STRING003 = Inkey()
  764.     If (STRING003 == "") Goto LABEL017
  765.     If (STRING003 == Chr(13)) Then
  766.         STRING003 = STRING010
  767.         Goto LABEL014
  768.     Endif
  769.     FReAltUser
  770.     Return
  771.     :LABEL018
  772.     If (STRING003 > MaxNode()) Then
  773.         If (OnLocal()) Then
  774.             Sound 1000
  775.             Delay 1
  776.             Sound 0
  777.         Endif
  778.         If (!OnLocal()) Print Chr(7)
  779.         Return
  780.     Endif
  781.     RdUNet STRING003
  782.     Color 7
  783.     Cls
  784.     WORD002 = WORD002 + Random(25) + 25
  785.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────┐"
  786.     PrintLn "│@X1F Change Node Info - Node #                                                 @X19│"
  787.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘"
  788.     PrintLn Space(77)
  789.     PrintLn " @X1EName@X1F      @X1E:@X1F @X0F                         @X1F                                       "
  790.     PrintLn Space(77)
  791.     PrintLn " @X1ECity@X1F      @X1E:@X1F @X0F                        @X1F                                        "
  792.     PrintLn Space(77)
  793.     PrintLn " @X1EOperation@X1F @X1E:@X1F @X0F                                                @X1F                "
  794.     PrintLn Space(77)
  795.     PrintLn " @X1EStatus@X1F    @X1E:@X1F @X0F @X1F  (See Below)                                                  "
  796.     PrintLn Space(77)
  797.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────┐"
  798.     PrintLn "│@X1F            Make Desired Changes And Hit Enter                             @X19│"
  799.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘"
  800.     PrintLn "@X07"
  801.     PrintLn "  A = Available For Chat   L = Logoff Pending       T = Transferring A file"
  802.     PrintLn "  B = Drop To DOS          M = Recvd Brdcst Msg     U = Unavailble For Chat"
  803.     PrintLn "  C = Chatting With Sysop  N = Running An Event     V = No Caller Online"
  804.     PrintLn "  D = Out Of Code In Door  O = Logging Into System  W = Drop To Dos - Wait"
  805.     PrintLn "  E = Entering A Message   P = Paging The Sysop     X = Drop To Dos - Now"
  806.     PrintLn "  F = Viewing A File       R = Recycle BBS          Y = No Caller (Clear)"
  807.     Print "  G = Chatting With Group  S = Answering A Script   Z = Inactive Node"
  808.     AnsiPos 29, 2
  809.     Print "@X1F", STRING003
  810.     AnsiPos 14, 5
  811.     Print "@X0F", UN_Name()
  812.     AnsiPos 14, 7
  813.     Print UN_City()
  814.     AnsiPos 14, 9
  815.     Print UN_Oper()
  816.     AnsiPos 14, 11
  817.     Print UN_Stat()
  818.     AnsiPos 14, 5
  819.     BIGSTR002 = 1
  820.     BIGSTR003 = 1
  821.     BIGSTR004 = 1
  822.     BIGSTR001 = ""
  823.     InputStr "_", BIGSTR002, 15, 25, Mask_Ascii(), 0
  824.     AnsiPos 14, 5
  825.     If (Left(BIGSTR002, 1) == 1) Then
  826.         BIGSTR002 = UN_Name()
  827.         Print UN_Name()
  828.     Else
  829.         Print Left(BIGSTR002, 25)
  830.     Endif
  831.     AnsiPos 14, 7
  832.     InputStr "_", BIGSTR003, 15, 24, Mask_Ascii(), 0
  833.     AnsiPos 14, 7
  834.     If (Left(BIGSTR003, 1) == 1) Then
  835.         BIGSTR003 = UN_City()
  836.         Print UN_City()
  837.     Else
  838.         Print Left(BIGSTR003, 24)
  839.     Endif
  840.     AnsiPos 14, 9
  841.     InputStr "_", BIGSTR004, 15, 48, Mask_Ascii(), 0
  842.     AnsiPos 14, 9
  843.     If (Left(BIGSTR004, 1) == 1) Then
  844.         BIGSTR004 = UN_Oper()
  845.         Print UN_Oper()
  846.     Else
  847.         Print Left(BIGSTR004, 48)
  848.     Endif
  849.     AnsiPos 14, 11
  850.     InputStr "_", BIGSTR001, 15, 1, "ABCDEFGHLMNOPRSTUVWXYZabcdefghlmnoprstuvwxyz", 8
  851.     AnsiPos 14, 11
  852.     If (BIGSTR001 == "") Then
  853.         BIGSTR001 = UN_Stat()
  854.         Print UN_Stat()
  855.     Else
  856.         Print BIGSTR001
  857.     Endif
  858.     AnsiPos 19, 14
  859.     Print "@X1F", Space(29)
  860.     AnsiPos 19, 14
  861.     InputStr "Changes (y/N) ", STRING016, 31, 1, "YNyn", 0
  862.     If ((STRING016 <> "Y") && (STRING016 <> "y")) Return
  863.     If (((BIGSTR001 == "V") || (BIGSTR001 == "Y")) || (BIGSTR001 == "Z")) Then
  864.         BIGSTR002 = ""
  865.         BIGSTR003 = ""
  866.         If (BIGSTR001 <> "V") BIGSTR004 = ""
  867.         If (BIGSTR001 == "Z") BIGSTR001 = Chr(0)
  868.         If ((BIGSTR001 == "V") || (BIGSTR001 == "Y")) BIGSTR001 = " "
  869.     Endif
  870.     WrUNet STRING003, BIGSTR001, BIGSTR002, BIGSTR003, BIGSTR004, ""
  871.     INTEGER012 = MaxNode() / 8
  872.     If (INTEGER012 * 8 < MaxNode()) Inc INTEGER012
  873.     BIGSTR005 = Space(INTEGER012)
  874.     INTEGER013 = INTEGER012 + 6
  875.     FOpen 1, STRING015, 2, 0
  876.     FSeek 1, INTEGER013, 0
  877.     FRead 1, BIGSTR005, Len(BIGSTR005)
  878.     If (BIGSTR004 <> "Z") Then
  879.         BitSet BIGSTR005, STRING003 - 1
  880.     Else
  881.         BitClear BIGSTR005, STRING003 - 1
  882.     Endif
  883.     FSeek 1, INTEGER013, 0
  884.     FWrite 1, BIGSTR005, Len(BIGSTR005)
  885.     FClose 1
  886.     Return
  887.     End
  888.     :LABEL019
  889.     Color 7
  890.     Cls
  891.     PrintLn 
  892.     PrintLn 
  893.     PrintLn 
  894.     PrintLn "@POS:24@@X0C┌───────────────────────────────┐"
  895.     PrintLn "@POS:24@@X0C│                               │"
  896.     PrintLn "@POS:24@@X0C│        @X0EAbout UltraMoni        @X0C│"
  897.     PrintLn "@POS:24@@X0C│          @X0FVersion 1.3          @X0C│"
  898.     PrintLn "@POS:24@@X0C│      @X0A───────────────────      @X0C│"
  899.     PrintLn "@POS:24@@X0C│                               │"
  900.     PrintLn "@POS:24@@X0C│  @X0FIf you find this program of  @X0C│"
  901.     PrintLn "@POS:24@@X0C│    @X0Fvalue, please consider     @X0C│"
  902.     PrintLn "@POS:24@@X0C│  @X0Fregistering it. Thank you!   @X0C│"
  903.     PrintLn "@POS:24@@X0C│                               │"
  904.     PrintLn "@POS:24@@X0C│ @X0BProgrammed by: Gerry Schechter@X0C│"
  905.     PrintLn "@POS:24@@X0C│                               │"
  906.     PrintLn "@POS:24@@X0C└───────────────────────────────┘"
  907.     PrintLn 
  908.     Print Space(26)
  909.     KeyFlush
  910.     Wait
  911.     Return
  912.     STRING001 = "Registered To: UNREGISTERED"
  913.     STRING001 = " UltraMoni v1.3 - (C) 1994 Gerry Schechter "
  914.  
  915. ;------------------------------------------------------------------------------
  916. ;
  917. ; Usage report (before postprocessing)
  918. ;
  919. ; ■ Statements used :
  920. ;
  921. ;    6       End
  922. ;    6       Cls
  923. ;    1       Wait
  924. ;    14      Color 
  925. ;    158     Goto 
  926. ;    160     Let 
  927. ;    124     Print 
  928. ;    121     PrintLn 
  929. ;    134     If 
  930. ;    3       FOpen 
  931. ;    5       FClose 
  932. ;    1       StartDisp 
  933. ;    1       GetUser
  934. ;    1       DefColor
  935. ;    5       Log 
  936. ;    5       InputStr 
  937. ;    18      Gosub 
  938. ;    11      Return
  939. ;    2       Delay 
  940. ;    7       Inc 
  941. ;    2       Dec 
  942. ;    4       GetToken 
  943. ;    1       KbdChkOn
  944. ;    1       KbdChkOff
  945. ;    3       RdUNet 
  946. ;    1       WrUNet 
  947. ;    88      AnsiPos 
  948. ;    4       Sound 
  949. ;    11      FSeek 
  950. ;    10      FRead 
  951. ;    1       FWrite 
  952. ;    3       KeyFlush
  953. ;    1       GetAltUser 
  954. ;    1       BitSet 
  955. ;    1       BitClear 
  956. ;    2       FReAltUser
  957. ;
  958. ;
  959. ; ■ Functions used :
  960. ;
  961. ;    27      -
  962. ;    4       *
  963. ;    4       /
  964. ;    70      +
  965. ;    12      -
  966. ;    96      ==
  967. ;    11      <>
  968. ;    24      <
  969. ;    11      <=
  970. ;    7       >
  971. ;    22      >=
  972. ;    92      !
  973. ;    33      &&
  974. ;    38      ||
  975. ;    7       Len(
  976. ;    44      Mid()
  977. ;    42      Left()
  978. ;    4       Right()
  979. ;    9       Space()
  980. ;    6       Chr()
  981. ;    1       Asc()
  982. ;    2       InStr()
  983. ;    3       RTrim()
  984. ;    6       Random()
  985. ;    19      Time()
  986. ;    4       U_Name()
  987. ;    1       U_LDate()
  988. ;    1       U_LTime()
  989. ;    1       U_LDir()
  990. ;    2       U_Logons()
  991. ;    1       U_Ful()
  992. ;    1       U_Fdl()
  993. ;    1       U_Bdl()
  994. ;    1       U_Bul()
  995. ;    3       Inkey()
  996. ;    11      String()
  997. ;    3       Mask_Ascii()
  998. ;    2       PCBDat()
  999. ;    1       PPEPath()
  1000. ;    4       ReadLine()
  1001. ;    1       SysopSec()
  1002. ;    4       OnLocal()
  1003. ;    5       UN_Stat()
  1004. ;    11      UN_Name()
  1005. ;    5       UN_City()
  1006. ;    8       UN_Oper()
  1007. ;    9       Exist()
  1008. ;    1       AnsiOn()
  1009. ;    1       U_PwdTc()
  1010. ;    3       Psa()
  1011. ;    2       FileInf()
  1012. ;    4       MaxNode()
  1013. ;    1       U_RecNum()
  1014. ;    3       ScrText()
  1015. ;    4       ToDate()
  1016. ;    1       ToMoney()
  1017. ;    8       IsBitSet()
  1018. ;
  1019. ;------------------------------------------------------------------------------
  1020. ;
  1021. ; Analysis flags : RdHs
  1022. ;
  1023. ; R - Read user ■ 5
  1024. ;     User records are read, this may signify that someone wants to get
  1025. ;     various informations about a user (for example his password), but
  1026. ;     this may also be normal for a program accessing user records (for
  1027. ;     example a User Editor)
  1028. ;     ■ Search for : GETALTUSER
  1029. ;
  1030. ; d - Access PCBOARD.DAT ■ 2
  1031. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  1032. ;     for many PPE so they can find various informations on the system
  1033. ;     (system paths, max number of lines in messages, ...) but it may also
  1034. ;     be a way to gather vital informations.
  1035. ;     ■ Search for : PCBDAT()
  1036. ;
  1037. ; H - Read Password or Password History ■ 5
  1038. ;     Program is reading the user's password or last password history
  1039. ;     This may be ok for a password manager, but it is very suspect. Check!
  1040. ;     ■ Search for : U_PWDHIST, U_PWD
  1041. ;
  1042. ; s - Sysop level access ■ 5
  1043. ;     Program is reading the sysop access level, this may be normal
  1044. ;     but still it is very suspect. It is the best way to give a user
  1045. ;     all priviledges. Check!
  1046. ;     ■ Search for : SYSOPSEC()
  1047. ;
  1048. ;------------------------------------------------------------------------------
  1049. ;
  1050. ; Postprocessing report
  1051. ;
  1052. ;    11      For/Next
  1053. ;    0       While/EndWhile
  1054. ;    64      If/Then or If/Then/Else
  1055. ;    1       Select Case
  1056. ;
  1057. ;------------------------------------------------------------------------------
  1058. ;                 AEGiS Corp - Break the routines, code against the machines!
  1059. ;------------------------------------------------------------------------------
  1060.